﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using Website.Logger;
using DAL;
using BOL;
using System.Web.Script.Services;
using System.Web.Services;
using WebLib;

namespace UILGestion.AlmacenAdmin
{
    public partial class NotaSalidaReadForm : System.Web.UI.Page
    {
       

    

        private void FormatForm()
        {

            //--------------------
            int idEmpleadoEmisor = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
            bool acceso = new DAL.FormularioAcceso().VerificarAcceso(DbUtil.Db,
                idEmpleadoEmisor,
                8, //Nota salida
                int.Parse(idObra.Value),
                1); //lectura
            //------------------------- 
            // los paneles presentes en el formulario
            mainPanel1.Visible = true;
            PanelButtom.Visible = true;
            PanelBody.Visible = true;
            ShowAllComboBoxNew();

            LoadEntidad(int.Parse(internalid.Value));
            EditarButton.Visible = false; //no se tiene claro como va a trabajar
            DataBindItems();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {


                if (!Page.IsPostBack)
                {


                    idObra.Value = (string)Request.QueryString["idObra"];
                    internalid.Value = (string)Request.QueryString["id"];
                    idAlmacen.Value = (string)Request.QueryString["idAlmacen"];

                    menuObraCtrl1.loadMenuAlmacen(int.Parse(idObra.Value), int.Parse(idAlmacen.Value)); 
                   
                    FormatForm();

               

                }


            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }

        }

        
        private void ShowAllComboBoxNew()
        {
            
            
        }



      


        protected void btnContinue_OnClick(object sender, EventArgs e)
        {
         
            try
            {
            if ((sender as Button).Text == refreshButton.Text)
            {
                FormatForm();
            }
                if ((sender as Button).Text == EditarButton.Text)
            {
                Response.Redirect(String.Format("NotaSalidaInsertForm.aspx?idAlmacen=" + idAlmacen.Value + "&id={0}&idObra={1}&type=E", internalid.Value, idObra.Value), true);
            }
                if ((sender as Button).Text == nuevoButton.Text)
            {
                Response.Redirect(String.Format("NotaSalidaInsertForm.aspx?id={0}&idObra={1}&idAlmacen={2}&type=A", internalid.Value, idObra.Value, idAlmacen.Value), true);
            }
                if ((sender as Button).Text == EliminarButton.Text)
                {
                    NotaSalidaBL bol = new NotaSalidaBL();
                    bol.Delete(int.Parse(internalid.Value));
                    Response.Redirect(String.Format("NotaSalidaListForm.aspx?idAlmacen=" + idAlmacen.Value + "&idObra={0}", idObra.Value), false);
                }
                
           }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);
               

            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);
               
            }
        }

  
     
        protected void refreshButton_Click(object sender, EventArgs e)
        {
        }





        private void LoadEntidad(int idInternal)
        {

            
            NotaSalida notaSalida = DbUtil.Db.NotaSalidas.Single(p=>p.idInternal==idInternal);

            tipoDocDropDownList.Text = notaSalida.DocumentoTipo.descripcion.ToString();
            numDocumentoLabel.Text = notaSalida.numDocumento;
            motivoDropDownList.Text = notaSalida.MotivoItem.descripcion.ToString();
            documentoTextBox.Text = notaSalida.documentoRef;
            fechaEmisonTextBox.Text = notaSalida.fecha.ToShortDateString();
            observacionTextBox.Text = notaSalida.observacion;
            fechaCreTextBox.Text = notaSalida.fechaCre.ToString();
            unidadTrabajoTextBox.Text = notaSalida.idUnidTrabajo!=null?notaSalida.UnidadTrabajo.descripcion:"";
                
                
            solicitaTextBox.Text = notaSalida.empleadoSolicita;
            autorizadoTextBox.Text = notaSalida.Empleado.descripcion;
            idAlmacen.Value = notaSalida.idAlmacen.ToString();
            usuarioCreLabel.Text = notaSalida.Empleado1.descripcion;

            if (notaSalida.idAlmacenDest != null)
            {
                almacenDesLBL.Text = "Almacen Destino:";
                almacenDestinoLBL.Text = notaSalida.Almacen1.descripcion;
            }
        }

        private void DataBindItems()
        {
            NotaSalidaBL bol = new NotaSalidaBL();
            List<NotaSalidaItemInfo> items = bol.GetNotaSalidaItem(int.Parse(internalid.Value));

            itemGridView.DataSource = items;
            itemGridView.DataBind();

            ItemUpdatePanel.Update();
        }
        protected void ordenCompraLinkButton_Click(object sender, EventArgs e)
        {
           // Response.Redirect(String.Format("~/ObraAdmin/OrdenCompraReadForm.aspx?id={0}&idObra={1}", int.Parse(idordenCompra.Value), int.Parse(idObra.Value)));
        }

        protected void anteriorButton_Click(object sender, EventArgs e)
        {
            try
            {
                NotaSalida cp = new NotaSalida();
                
                int idAnterior = cp.getidAnterior(DbUtil.Db, int.Parse(internalid.Value), int.Parse(idObra.Value));


                Response.Redirect("NotaSalidaReadForm.aspx?idAlmacen=" + idAlmacen.Value + "&id=" + idAnterior.ToString() + "&idObra=" + idObra.Value, false);

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

        protected void siguienteButton_Click(object sender, EventArgs e)
        {
            try
            {

                dbGestionDataContext _db = new dbGestionDataContext(Parametros.strConnString);
                NotaSalida cp = new NotaSalida();

                int siguiente = cp.getidSiguiente(_db, int.Parse(internalid.Value), int.Parse(idObra.Value));

                Response.Redirect("NotaSalidaReadForm.aspx?idAlmacen=" + idAlmacen.Value + "&id=" + siguiente.ToString() + "&idObra=" + idObra.Value, false);

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

      

     




       


    }

}
